What is moment-timezone?
The moment-timezone package is an extension for the moment.js library that allows users to parse and display dates in any timezone. It provides timezone data and functions to work with dates in different time zones.
What are moment-timezone's main functionalities?
Parsing Dates in Timezones
This feature allows you to create a moment object with a specified timezone. The code sample creates a moment object for the time and date '2013-11-18 11:55' in the 'America/Toronto' timezone.
moment.tz('2013-11-18 11:55', 'America/Toronto')
Converting Dates to Different Timezones
This feature enables you to convert the current time to a different timezone. The code sample converts the current time to the 'America/New_York' timezone and formats it as a string.
moment().tz('America/New_York').format()
Retrieving Timezone Names
This feature provides a list of all the timezone names available in the moment-timezone library. The code sample retrieves an array of timezone names.
moment.tz.names()
Working with UTC Offsets
This feature allows you to work with UTC offsets directly. The code sample parses a date with a specific UTC offset and retrieves that offset in minutes.
moment.parseZone('2013-01-01T00:00:00-13:00').utcOffset()
Other packages similar to moment-timezone
date-fns-tz
date-fns-tz is a timezone support add-on for date-fns, a modern JavaScript date utility library. It provides similar functionalities for handling timezones but with a more modular approach, which can result in smaller bundle sizes if only specific functions are imported.
luxon
Luxon is a powerful, modern, and friendly wrapper for JavaScript dates and times. It includes comprehensive timezone support and compares to moment-timezone with a more fluent and chainable API, as well as being immutable, which can help prevent bugs in date-related code.
dayjs
Day.js is a minimalist JavaScript library for parsing, validating, manipulating, and formatting dates, similar to moment.js. With its plugin 'utc' and 'timezone', it can provide similar timezone handling capabilities as moment-timezone, but with a smaller footprint and a simpler API.
spacetime
Spacetime is a lightweight way to manipulate, traverse, compare, and format dates and times across planet Earth. It offers a different approach to handling timezones and date-time manipulation with a focus on performance and a smaller size compared to moment-timezone.
IANA Time zone support for Moment.js
Project Status
Moment-Timezone is an add-on for Moment.js. Both are considered legacy projects, now in maintenance mode. In most cases, you should choose a different library.
For more details and recommendations, please see Project Status in the Moment docs.
Thank you.
Resources
Examples
var june = moment("2014-06-01T12:00:00Z");
june.tz('America/Los_Angeles').format('ha z');
june.tz('America/New_York').format('ha z');
june.tz('Asia/Tokyo').format('ha z');
june.tz('Australia/Sydney').format('ha z');
var dec = moment("2014-12-01T12:00:00Z");
dec.tz('America/Los_Angeles').format('ha z');
dec.tz('America/New_York').format('ha z');
dec.tz('Asia/Tokyo').format('ha z');
dec.tz('Australia/Sydney').format('ha z');
License
Moment-timezone is freely distributable under the terms of the MIT license.